package hejie.admin.service.impl;

import java.util.List;

import hejie.admin.dao.EnterpriseTypeDao;
import hejie.admin.service.EnterpriseTypeService;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import publics.model.EnterpriseType;
import publics.util.Page;


@Component("enterpriseTypeService")
public class EnterpriseTypeServiceImpl implements EnterpriseTypeService{
	
	EnterpriseTypeDao enterpriseTypeDao;
	
	public EnterpriseTypeDao getEnterpriseTypeDao() {
		return enterpriseTypeDao;
	}	
	@Resource(name="enterpriseTypeDao")
	public void setEnterpriseTypeDao(EnterpriseTypeDao enterpriseTypeDao) {
		this.enterpriseTypeDao = enterpriseTypeDao;
		System.out.println("enterpriseTypeDaoImpl inject in EnterpriseTypeServiceImpl");
	}

	public Object saveEnterpriseType(EnterpriseType etype) {
		List<EnterpriseType> etypeName = enterpriseTypeDao.findByName(etype.getName());	
		List<EnterpriseType> etypeNum = enterpriseTypeDao.findByNum(etype.getNum());	
		if(etypeName.size() == 0&&etypeNum.size()==0){
			return enterpriseTypeDao.save(etype);		
		}
		else 			
		   return null;
	}

	public Page findByPage(Page page) {
		String sql = "from EnterpriseType e";		 
		if(page.getConditions().size() > 0){//这里为模糊查询的 sql 语句拼接
			sql = sql + " where ";  
			for(int i = 0; i < page.getConditions().size(); ){
				sql = sql + "( e.name like '%"+page.getConditions().get(i)+"%'"
				+" or e.num like '%"+page.getConditions().get(i)+"%' ) ";
				//每次上面两个属性只有匹配到的才能取到值，不然为%
				i++;
				if(i < page.getConditions().size()){// 如果条件不止一个 进行连续拼接
					sql = sql + " and ";
				}
			}
		}
		System.out.println("sql ="+sql);
		
		int pageSize = page.getLimit();
		int offset = page.getStart();//-1)*pageSize;
		page.setRoot(enterpriseTypeDao.findByPage(sql,offset,pageSize));//把查询结果放入root中
		page.setTotalProperty(enterpriseTypeDao.findByCount(sql));   //把数据总数放入totalProperty中
		return page;
	}

	public boolean updateEnterpriseType(EnterpriseType etype) {
		return enterpriseTypeDao.update(etype);

	}

	public boolean deleteEnterpriseType(Integer id) {
		System.out.println("service里 enterpriseTypeId="+id);
		return enterpriseTypeDao.deleteById(id);
	} 	
}
